home *** CD-ROM | disk | FTP | other *** search
- property spritenum, baseMember, animCastList, cycleTime, startTime, turnedOn, ancestor
-
- on new me, parameterList
- set spritenum to getProp(parameterList, #spritenum)
- set baseMember to getaProp(parameterList, #baseMember)
- if stringp(baseMember) or (baseMember > 0) then
- set baseMember to the number of member baseMember
- end if
- set animCastList to getProp(parameterList, #animCastList)
- repeat with animMember in animCastList
- preloadMember(member animMember)
- end repeat
- set cycleTime to getaProp(parameterList, #cycleTime)
- set startTime to 0
- set turnedOn to 0
- return me
- end
-
- on TurnOn me
- if baseMember <= 0 then
- set baseMember to the memberNum of sprite spritenum
- end if
- puppetSprite(spritenum, 1)
- if startTime = 0 then
- set startTime to the ticks
- end if
- if cycleTime <= 0 then
- set animIndex to 1
- else
- set animIndex to (the ticks - startTime) / cycleTime
- set animIndex to (animIndex mod count(animCastList)) + 1
- end if
- set newCast to getAt(animCastList, animIndex)
- set newCast to the number of member newCast
- if the memberNum of sprite spritenum <> newCast then
- set the memberNum of sprite spritenum to newCast
- updateStage()
- end if
- set turnedOn to 1
- end
-
- on TurnOff me
- if turnedOn then
- if baseMember > 0 then
- set the memberNum of sprite spritenum to baseMember
- end if
- set startTime to 0
- set turnedOn to 0
- end if
- end
-
- on dispose me
- if baseMember > 0 then
- set the memberNum of sprite spritenum to baseMember
- end if
- puppetSprite(spritenum, 0)
- set turnedOn to 0
- set animCastList to []
- if objectp(ancestor) then
- dispose(ancestor)
- end if
- set ancestor to 0
- end
-